// a = 1;
// var a;
// console.log(a);
// 如果按 同步 瞬间完成代码 a是undefined 但并不是

// 实际上：
// 背后机制 ：执行栈 + 2个阶段
// 两个阶段：变量的声明 + 变量的执行
// js 中的变量 独立存在 变量类型由值决定 在特定的作用域下声明
// 作用域 优先于变量存在

// 变量提升
a = 1;
var a;
console.log(a);
// ||
var a;
a = 1;
console.log(a);